Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

C# : WebResponse: Μη υποστήριξη Seek ή Position

Îåêßíçóå áðü ôï ìÝëïò Panosk. Τελευταία δημοσίευση από το μέλος Panagiotis Kefalidis στις 19-12-2005, 19:40. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  16-12-2005, 17:10 8056

    Huh? [:^)] C# : WebResponse: Μη υποστήριξη Seek ή Position

    Γεια χαρά σε όλους.

    Προσπαθώ να φτοιάξω έναν download manager. Σε αυτή τη φάση, λειτουργεί πλήρως, κάνοντας download από οποιοδήποτε url, μετρώντας το download rate, remaining time, tranfer, κτλ...

     

    Αυτό που θέλω να κάνει, είναι να υποστηρίζει resume του download. Δυστυχώς, το Network stream οπως το WebResponse δεν υποστηρίζει Positon ή Seek και έτσι, ενώ διαβάζω το ήδη downloaed αρχείο (πχ. 100ΚΒs) και μπορώ να κανω set/get το postion στο filestream, στον WebResponse stream δεν γίνεται. Έτσι, το download θα πρέπει να αρχίσει από την αρχή.

    Καμιά ιδέα για την λύση του προβλήματος?

    Για να πάρετε κάποια ιδέα για το τι κάνει: (κάποιο κομμάτι του κώδικα)

    WebResponse response;
    Stream remoteStream = null;
    Stream localStream = null;
    WebRequest request = WebRequest.Create(remoteFilename);

    response = request.GetResponse();
    remoteStream = response.GetResponseStream();
    localStream = File.Create(localFilename);

     byte[] buffer = new byte[buffersize];
                            int bytesRead;

     

                            do
                            {

    //εδώ εναλλακτικά, στην περίπτωση που θέλω να κάνω resume, θα έπρεπε να αλλάξω το position αλλά υπάρχει το πρόβλημα που αναφέρω

                                bytesRead = remoteStream.Read(buffer, 0, buffer.Length);

                               
                                localStream.Write(buffer, 0, bytesRead);

                                //long μεταβλητές


                                bytesProcessed += bytesRead;
    }while (bytesProcessed < response.ContentLength);

     

  •  16-12-2005, 19:35 8059 σε απάντηση της 8056

    Απ: C# : WebResponse: Μη υποστήριξη Seek ή Position

    Καλό θα ήτανε να το κάνεις με Windows API ώστε να ξεπεράσεις αυτό το πρόβλημα.
    Δεν ξέρω καν αν υπάρχει λύση σε επίπεδο managed code και framework..Παρόμοιο πρόβλημα το έλυσα έτσι εγώ (κατεβαίνοντας σε Unmanaged code και Windows API).
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  19-12-2005, 16:37 8100 σε απάντηση της 8059

    Απ: C# : WebResponse: Μη υποστήριξη Seek ή Position

    Ποιο Windows API? Αυτο που είναι για background download (που χρησιμοποιεί η microsoft για τα auto updates) ή κάτι άλλο?

  •  19-12-2005, 19:40 8110 σε απάντηση της 8056

    Απ: C# : WebResponse: Μη υποστήριξη Seek ή Position

    Δεν υπάρχει κάποιο συγκεκριμένο.. Γενικά το API που αναφέρετε σε socketing στα Windows.Η αμα δεν θές να παιδεύεσαι, χρησιμοποιήσε IE API, που είναι ακόμα ποιο εύκολο Smile [:)]
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems